iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
AI Engineering

從 Prompt 到自主決策:用 Python × Agentic Workflow 實作生活助理系列 第 6

讓資料擁有結構與名稱:Dictionary 與 Agent 的資料傳遞

  • 分享至 

  • xImage
  •  

在昨天的文章中,我們學習了如何使用 List(串列) 來儲存多筆資料,並了解 List 是 AI Agent 維護「歷史對話紀錄」的基礎。
不過,如果我們今天想讓 AI 生活助理記錄一個更完整的物件或使用者資訊,單純用 List 往往會遇到問題。
例如,我們用 List 記錄一個人的資訊:

user_info = ["小明", 20, "台北", "晴天"]

如果不看程式碼註解,我們很難一眼看出 20 到底是年齡還是日期?"台北" 又是住址還是目的地?
為了讓資料更有「結構」且「易於閱讀」,我們需要用到 Python 的另一個核心資料結構 —— Dictionary(字典)。
什麼是 Dictionary(字典)?
Dictionary 是一種以 Key-Value(鍵值對) 形式儲存資料的結構。就像我們翻字典時是用「字詞(Key)」去查「解釋(Value)」一樣。
在 Python 中,我們使用大括號 {} 來建立字典:

# 建立一個使用者的資料字典
user_profile = {
    "name": "小明",
    "age": 20,
    "city": "台北",
    "budget": 500
}

print(user_profile)

執行結果:{'name': '小明', 'age': 20, 'city': '台北', 'budget': 500}
讀取資料時,我們不需要去記索引號碼 0 或 1,而是直接指定 Key 的名稱:

print(user_profile["name"])  # 取得姓名
print(user_profile["city"])  # 取得城市

執行結果:小明 台北
這樣寫不僅讓程式碼一目瞭然,讀取資料時也更不容易出錯。
靈活運用:修改與新增字典內容
生活助理在幫我們處理事項時,資料會隨時更新。字典的內容是非常容易調整的:

user_profile = {"name": "小明", "city": "台北"}

# 新增欄位
user_profile["weather"] = "下雨"

# 修改既有欄位
user_profile["city"] = "新竹"

print(user_profile)

執行結果:{'name': '小明', 'city': '新竹', 'weather': '下雨'}
Dictionary 與 AI Agent 有什麼關係?
在現代的 AI 應用與 Agent 開發中,Dictionary 可說是使用頻率最高的資料型態,主要體現在以下三個層面:

  1. 結構化對話訊息
    當我們串接 OpenAI 或 OpenAI 格式的 API 時,發送給 AI 的每一條訊息背後都是一個 Dictionary:
# 一條典型的 API 對話訊息
message = {
    "role": "user",
    "content": "幫我查詢台北今天的天氣"
}

把多個這樣的 Dictionary 放在 List 裡面,就成了整個 Agent 的對話歷史
2. 工具呼叫的參數傳遞
當 AI 決定呼叫外部工具(例如:查詢氣象 API)時,AI 回傳給程式的指令通常就是 JSON / Dictionary 格式:

# AI 決定呼叫天氣工具時產生的參數字典
tool_call_args = {
    "tool_name": "get_weather",
    "location": "Taipei",
    "unit": "celsius"
}

Python 程式收到這個 Dictionary 後,就能精準抽取 location 欄位並傳入對應的函數中執行。
今天學到什麼?
今天我們學習了 Python 處理結構化資料的核心工具:
Dictionary(字典):透過 Key-Value 鍵值對來明確標示資料意涵。
存取與修改:使用 dict[key] 來精準取得與更新內容。
在 Agent 中的應用:Dictionary 是 AI API 對話訊息、JSON 資料交換以及 Tool 參數傳遞的基石。
有了變數、條件判斷、串列與字典的概念後,我們已經掌握了基本的資料儲存與邏輯!
下一篇,我們將學習如何把重複使用的程式碼封裝起來 —— Function(函數),這也是未來幫 AI Agent 撰寫「外部工具(Tools)」的關鍵第一步!


上一篇
讓程式處理多筆資料:List、Loop 與 Agent 的記憶迴圈
下一篇
將程式碼打包成可重用的模組:Function 與 Agent 的 Tool 第一步
系列文
從 Prompt 到自主決策:用 Python × Agentic Workflow 實作生活助理9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言